package com.googlecode.openrtp.spi.rtcp;

import java.util.List;

/**
 * 
 *   0               1               2               3
 *  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 * |V=2|P|    SC   |   PT=BYE=203  |            length L           |
 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 * |                           SSRC/CSRC                           |
 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 * :                              ...                              :
 * +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
 * |     length    |               reason for leaving (opt)       ... 
 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 * 
 * 
 * @author jocke
 */
public class RtcpByePacket implements RtcpPacket {

    private RtcpHeaderPacket headerPacket;
    private List<Long> ssrcs;
    private final String message;

    private RtcpByePacket(RtcpHeaderPacket headerPacket, List<Long> ssrcs, String message) {
        this.headerPacket = headerPacket;
        this.ssrcs = ssrcs;
        this.message = message;
    }

    public static RtcpByePacket create(RtcpHeaderPacket headerPacket, List<Long> ssrcs, String message) {
        return new RtcpByePacket(headerPacket, ssrcs, message);
    }

    public RtcpHeaderPacket getHeaderPacket() {
        return headerPacket;
    }

    public List<Long> getSsrcs() {
        return ssrcs;
    }

    public String getMessage() {
        return message;
    }

    @Override
    public String toString() {
        return "RtcpByePacket{" + "headerPacket=" + headerPacket + ", ssrcs=" + ssrcs + ", message=" + message + '}';
    }
    
}
